Ultra light weight browser

ABSTRACT

The present invention relates to the field of computer technology, and in particular to a method and system for compressing digital data from a row-column structured, multi-color bitmap image representation and to advantageous applications thereof for low bandwidth data communication. In order to increase the compression rate in particular of bitmaps corresponding to screen shots in web-based applications or standard desktop applications having a graphical user interface (GUI) it is proposed to reduce ( 210 ) the image representation in order to contain only a subset of colors, preferably 2, 4, 8, 16 . . . 256, before subjecting it to further compression steps ( 215, 260, 265 ) and comprising rowwise X-OR operations ( 215 ) and subsequent compressed mapping ( 240, 245 ) of the resulting pixel information into a respective compressed bit string. X-OR operations in column direction ( 220 ) are also added in order to improve the compression rate for the specific field of above said low bandwidth communications.

1. BACKGROUND OF THE INVENTION

1.1. Field of the Invention

The present invention relates to the field of computer technology, andin particular to a method and system for compressing digital data from arow-column structured, multi-color bitmap image representation and toadvantageous thereof for low bandwidth data communication.

1.2. Description and Disadvantages of Prior Art

A prior art compression scheme is published in a scanner handbook ofCHINON INDUSTRIES, INC., “IMAGE SCANNER”, TECHNICAL REFERENCE MANUAL,N-207, DS-3000, published by SHENON INDUSTRIES in 1988 and availablefrom SHENON AMERICA, INC. INFORMATION EQUIPMENT DIFF., 660 MAPLE AVENUE,TORRANCE, CA 90503 U.S.A.

In order to provide for an effective, two-dimensional data compressionscheme it is proposed in this prior art method to generally reduce thedata volume and respective transmission time volume by the followingbasic compression scheme: The data in one line is divided into 8 bits.When all 8 bits are “0”, they will be skipped. Otherwise, the 8 bitswill be transmitted as compression coding “1”. If the maximum data offor example 316 bytes in one line is coded, the data is expressed by thecompression codes of 40 bytes, whereby the least significant 4 bits ofthe last byte has no meaning. If the compression codes of 40 bytes arecompressed two more times the codes are compressed to 1 byte. In otherwords, a byte having one or more “1” bits is mapped to a bit value of“1”, and the byte is stored in a retrievable manner, preferred directlybehind said compressed string and a byte only consisting of “0” bits ismapped to a “0” bit value. In order to adapt this basic compressionmethod to the above-mentioned two-dimensional image representations thisprior art publication proposes a bit-wise EXCLUSIVE OR (X-OR) operationbetween respective bits or pixels of subsequent rows in a row-columnstructured bitmap representation. That means when previous row-bits orpixels in the same column position are identical, then a “0” is the X-ORresult, whereas if the two bits are different, then a “1” is the X-ORoperation result. The X-OR operation is done line-wise (row-wise) beforethe execution of the before-mentioned one-dimensional data compression).

A disadvantage of this prior art compressing method is that it is notefficient enough for compressing image representations, which occurtypically in GUI-oriented program applications and handles only blackand white pictures.

According to a second aspect of the present invention such compresseddata is frequently communicated via networks, either having lower orlarger bandwidths. For example, when using an Intranet and browsing someportal, much transmission time is spent for transmitting the largeamount of data needed for the end-user to see a multicoloured, highresolution graphic at his terminal device. In particular, if said deviceis coupled via a low bandwidth line, this takes an intolerable timeuntil a user sees a GUI-structured screen at his terminal device. Havingfor example a transmission rate of 9.6 Kbits per second, thetransmission time for a portal screen may be roughly six minutes.

Also for remote application control between such low bandwidth-coupled,maybe handheld terminal device and a backend application server the sameproblem exists.

1.3. Objectives of the Invention

It is thus an objective of the present invention to provide an improvedcompressing method and its advantageous use for networked applications.

2. SUMMARY AND ADVANTAGES OF THE INVENTION

This objective of the invention is achieved by the features stated inenclosed independent claims. Further advantageous arrangements andembodiments of the invention are set forth in the respective subclaims.Reference should now be made to the appended claims.

According to its first primary aspect the present invention discloses toquantisize the image representation, to contain only a reduced number ofcolours, preferably a low number of colours as are 2, 4, 8, 16 . . .256, whereby the bitmap bits associated with one single colour define arespective subset of bitmap bits. Each of said subsets is then subjectedto the above-mentioned X-OR based compression—or further compressionsteps—and to the subsequent bit-string coding step. The idea behind isthat in particular when web-based applications are considered ornetworked applications in general, that it is not necessary, primarilyto see the screen with all details and in an multi-colour true typeaspect thereof, in particular when the actually transmitted screen isonly used for navigating between some screens, as during simplenavigation, in most cases, a high resolution, or true type aspects ofthe transmitted screen or web-page are not really needed. It is thusproposed as a first step, to reduce the image representation to a lownumber of colours, for example a grey scale of 2 or 4 grey colours asare for example white, light grey, dark grey and black, giving a greyscale of a total of 4 colours.

When further, a second X-OR operation is applied in a second directionperpendicular to the direction of the first X-OR operation, thenparticular advantages are achieved when typical GUI-like screenshots arecompressed. This is due to the fact, that in such screens whicheverybody knows from his own desktop the basic graphical structures arewindows which contain most often perpendicular, uni-coloured areas,which are intersected or overlaid by text information. For this specifictypical shape said second X-OR operation is performed after thebefore-mentioned first X-OR operation. The result is an additionalcompression of the order of 10% in typical GUI-based screens.

Further advantageously, the compression result, which is obtained by theabove-mentioned measures, is advantageously followed by a furthercompression step according to the invention. The further compression mayfor example be a Huffman compression or a further compression referredto herein as “LZ77” compression, which is publicly available under theURL: www.qzip.org/zlib/, and is described in further detail under theURL: www.qzip.org/zlib/feldspar.html. Further, both, Huffman coding andLZ77 coding may advantageously combined, in which combination the orderdoes not play a role.

According to the second primary aspect of the present invention in aserver-client communication process a method for performing a lowbandwidth transmission of a multi-colored bitmap image representation ofgraphical user-interface (GUI) data, is disclosed, for both, the serversite, and the client site, whereby the server site method ischaracterized by the steps of:

-   a) determining at least a primary and a secondary subset from the    subsets generated by compression as mentioned above,-   b) transmitting bits corresponding to a primary subset of the    reduced-color pixels of said bitmap image representation in a first    transmission process,-   c) transmitting bits corresponding to a secondary subset of the    pixels of said bitmap image representation in a second transmission    process subsequent to the first one. Of course, the above step a)    will in most cases mean to associate the most important information,    ie the most relevant information to the user with the primary    subset, in order to make it appear first at the client device. This    is in most cases text information. Nevertheless, dependent of the    actual particular application, also graphical information may be    transmitted first, if this is will be exceptionally desired, for    example after having passed some filter criteria, like e.g. “select    only circles of a predetermined size range and color”. It is to be    understood that the scope of the present invention will cover all    those applicational aspects.

At the client site, in a server-client communication process a methodfor participating in a low bandwidth transmission of a multi-coloredbitmap image representation of graphical user-interface (GUI) data isdisclosed, which plays the respective client counterpart role of theabove mentioned method, which is characterized by the steps of:

-   a) receiving (340) bits corresponding to a primary subset of the    reduced-color pixels of said bitmap image representation (40) from a    first transmission process,-   b) performing uncompression steps on said received bits reversing a    respective compression as it was mentioned above,-   c) displaying a bitmap image representation corresponding to said    first primary subset,-   d) subsequently, receiving (355) bits corresponding to a secondary    subset of the pixels of said bitmap image representation (40) from a    second transmission process subsequent to said first one,-   e) performing uncompression steps on said subsequently received bits    reversing a respective compression as it was mentioned above,-   f) displaying a bitmap image representation corresponding to said    secondary subset together with the bitmap image representation    displayed from said first transmission process. Thus, most important    information of said bitmap image representation may be transmitted    first, which provides for a significant saving of transmission time.

Further, the following step may be performed advantageously at theclient:

-   filling-in grey scale pixels of an interpolated grey scale    corresponding to grey scale difference bits at respective locations    of said transmitted bitmap image representation. This diminishes    sharp grey scale contrasts.

Further, the inventive method may be advantageously applied in web-basedapplications between a Proxy-Server and an end user-associated devicearranged for receiving said transmitted, reduced-color pixels of saidbitmap image representation, and having only small computing and/ordisplay resources.

In this respect a further performance enhancement is disclosed asfollows:

At the client site, when receiving said transmitted, reduced-colorpixels of said bitmap image representation (40), respective controlprogram means are provided for processing a user control responseresponsive to the displayed bitmap image representation in form of auser-initiated control response, such as a mouse-click or any equivalentthereto at some X-Y-screen location, or any dedicated, predeterminedpressing of a key, and for forwarding said user control response to saidProxy-Server, e.g. in form of a short control message comprisingX,Y-coordinates and some bits encoding the nature of the control, leftor right mouse button, double-click, etc.

In this respect at the Proxy Server, where a usual Web-browser isimplemented, steps are performed as follows:

-   a) using control program means for transforming said user control    response forwarded from said client device into a browser-specific    user control command,-   b) evaluating said command, and in case said command represents a    network request, which after execution comprises the display of a    bitmap image representation different to that which was transmitted    in said first transmission process, and is to be refined by said    second transmission process,-   c) aborting the current first and/or second transmission processes    as long as not yet completed, and-   d) starting a new transmission process according to said    browser-specific user control command.

Advantageously, when the result of said evaluation step b) comprises theexecution of a hyper-link, or a link inside the accessed webpage,involving the display of a basically different screen in the Browser atthe Proxy Server, this new screen is compressed and transmitted to theuser instead of continuing to complete the display of the former screen,in which the link was actuated. Thus, the advantage results that thereceiving user may immediately do something, for example continuingnavigation, before the rest of the page is transmitted to him, even whenonly a part of the second or even the first transmission process iscompleted and respective bitmap information is displayed to the user.This is definitely advantageous for navigating between web pages orremote menu control of applications as it saves time enormously.

Further advantageously, said subset of colors is a 2-colors subset,preferred black/white one, whereby black color pixels are associatedwith said primary subset and are transmitted within said firsttransmission process.

Further, after the second transmission process the user may be given anoption to request further image details e.g., True-Type-style or anyintermediate resolution or color scale, as e.g., 1024 colors, or 4096colors, etc.

When the above-mentioned subset of colours is a 2-colours subset, ase.g. a black/white subset, and when a specific type of information isassociated with black and the rest of the image with white, then,transmission time can be saved significantly. When for example saidselected type of information is important relative to the rest ofinformation contained in the image, then, basically a filter criterionis applied, which advantageously provides for transmitting in said firsttransmission process only the important contents of the image. A goodchoice is to associate text information to said selected, specific typeof information because in many cases text is overlaid to some graphicalenvironment as it is the case in GUI-windows, for example.

Further, the black colour is preferably associated with the textinformation, and URL-specifying text, which is represented usually inblue colour in any web-site may be transferred to black colour, too.Thus, combining an improved compression for GUI-type data with theprivileged transmission of text information over graphical informationprovides a significant technological progress in saving bandwidth forany application purposes the user wishes.

Further, a wide field of applications may take profit from the presentinvention, when the client communicates with a business applicationserver just implementing any business application program, such as aspreadsheet application, a word processor, a database application or anyother non-standard business application, whereby no interaction with theInternet takes place, ie, a scenario of FIG. 1 in which the right handportion of FIG. 1, ie the Webserver, does not play a role. Thus, theinvention may be used in any situation, in which GUI-data are to betransferred to a client in a communication channel, which has lowcapacity or where transmission of data is relatively costly such thatthe compression and the inventive client/server dialogue as disclosed inhere is worth while doing. When the user control response is interpretedand executed at the application Server and results in a massivelydifferent bitmap representation, then the currently active transmissionprocess to the client is also aborted and a new transmission process isstarted enabling a display of the application screen as freshlyrequested by the end-user at the client site. The criterion saying ifthere are “massive” differences or not, may preferably prefer thetopmost and leftmost regions of a screen, as experience has shown thatin the majority of program applications these are the screen regions, inwhich the most important information is displayed to the user. Further,it may be determined by calculation, what is to be preferred, eitherrenew the screen already displayed at the client by transmitting thedelta information between displayed screen and new screen, or restartand transmit the new screen totally from scratch.

Thus, from a today's user perspective this enables remote control ofprogram applications of the GUI-type via low-bandwidth connections, likeGSM-connections, as a primary example for low-bandwidth transmission.Also the use of the Internet or an Intranet as a specific case thereofis improved specifically for the low-bandwidth case between a mobileclient and a respective proxy-server associated to the mobile client anda high-bandwidth linked web-server, respectively. Further, the advantagecan also be exploited for high bandwidth connections like e.g. futureUMTS connections, when the user must pay for the data volumetransmitted.

Further details are given in the description of the preferred embodimentfurther below.

3. BRIEF DESCRIPTION OF THE DRAWINGS

The present invention is illustrated by way of example and is notlimited by the shape of the figures of the drawings in which:

FIG. 1 is a schematic representation of the essential components in asystem using the basic principles of the present invention whenaccessing the Internet or a backend application server from a clientdevice via a low-bandwidth connection;

FIG. 2 is a schematic block diagram representation illustrating thecontrol flow in the compression procedure according to the presentinvention;

FIG. 3 is a schematic block diagram representation showing the controlflow in an inventional embodiment of a transmission process enriched byboth before-mentioned primary aspects of the present invention;

FIG. 4 is an example of a 4 colour grey scale screenshot of a Webpage;

FIG. 5 is the same webpage after being applied to the row-wise X-ORoperation;

FIG. 6 illustrates the application of the columnwise X-OR operation tothe picture of FIG. 5; and

FIG. 7 is a table representation illustrating the positive effects ofthe proposed compression technique compared to the use of the best priorart compression format for the given type of low number of colourpictures, the .gif file format. The comparison is done on 7representative portal pages of a customer portal.

4. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT

With general reference to the figures and with special reference now toFIG. 1 an application scenario is described in more detail illustratinghow a mobile computer device and the user thereof, respectively, mayadvantageously take profit from the basic features of the presentinvention.

A mobile computer device, e.g. a notebook or a personal digitalassistant (PDA) having reference sign 10, is assumed to need anIntranet/Internet access. In an alternative application case it may beassumed to need to remote-control a backend application. Both suchapplications are limited by a low-bandwidth network connection betweendevice 10 and a proxy-server 20 which is associated to device 10. Thelow-bandwidth may be a standard GSM-connection having a bandwidth of 9.6Kbps.

In case of mobile access to the Intranet, the user is assumed to need aportal access to his enterprise, for example. For this purpose, theproxy-server 20 is connected via a high-bandwidth connection to aweb-server 30, which may be located at the enterprise side itself, e.g.via a high-bandwidth local network. In case the web-server is outsidethe enterprise, which may be assumed for Internet access, a largerbandwidth may also be assumed for the purposes of the present inventionbetween proxy-server 20 and web-server 30.

According to FIGS. 1 and 4, and to a preferred embodiment of theinvention, which is applied between said proxy server means 20 and theend user-associated device 10, e.g., a mobile client, said device 10 isarranged for receiving a bitmap image representation 40—see FIG. 4, in areduced-color pixel format.

According to a particular advantageous aspect the following features areimplemented:

-   a) a control program means 15 is used at the end user device 10 for    forwarding an end user response, responsive to said transmitted    bitmap image representation 40 to said proxy server means, and-   b) a control program means 25 is provided at the proxy server site    for receiving and transforming said forwarded user response into    browser-specific user control commands.

Said component 15 is responsible for detecting any user input on device10 (keyboard key-pressing/mouse-click, touchpad-knocking, etc. . . . )and for transmitting, ie forwarding this information, e.g. in form of acontrol message including only a small number of control bits encodingthe X-Y position of the respective click and the type of user action, asit was mentioned above, to the proxy-server 20, where these interactionsare placed and processed, as if they where done locally on thisproxy-server.

This feature can be advantageously used to abort the currenttransmission(s), ie the first and second transmission processes orfurther ones, as mentioned above, and to start a new transmissioncontrolled by said “mouse-click” and its “translation” by the ProxyServer. Thus, in this case, when the X-Y position in the bitmapdisplayed to the client-site end-user corresponds to the position of aLink or a Hyperlink in the respective bitmap at the Proxy Server, theProxy Server's control program executes this link and aborts the formertransmissions as they are now obsolete, as it is proved by the end-userperformed “click” to said link. By that, user navigation inside therespective websites corresponding to such bitmap representations issignificantly accelerated, as superfluous information is not transmittedat all, but instead, the new information, which seems to be moreinteresting to the end-user is transmitted to him, after the ProxyServer has received the new bitmap representation corresponding to thenewly requested website. In case the Proxy Server is replaced by anApplication Server, e.g. a Database Server, then the navigation in thisapplication is significantly enhanced.

According to a further advantageous feature of the present invention adifference detection mechanism having again reference sign 25 isimplemented at the server site, recording bitmap image representations40, e.g. screenshots, periodically on the proxy-server 20 to detect anychanges, eg. in the Browser Application running on proxy server 20accessing the web server 30. Those changes will be transferred by theinventional methods to the receiving program component 15 at the clientsite, which uncompresses the transmitted information and then displaysit on device 10. Preferably, only delta-information between screens istransmitted, which is per se known from prior art.

With additional reference now to FIG. 2, first, further details aredescribed when the inventional compression method is applied accordingto a preferred embodiment thereof. In a first step or pre-step 210 ascreenshot visible at proxy-server 20 is quantisized, e.g. to reduce thecolors to a number of 4 grey colours. The algorithm may control thiscolour reduction preferably to empirically found rules according to arespective application behind. For example, in order to collect all textinformation contained in web-based applications it is recommended tocollect, beside of the mostly prevailing black text, the typical bluecolour used usually for representing URLs to the black colour.

Further, other colours to be known to be used very often for textrepresentation should also be mapped to the black colour. Alternatively,all text elements comprised of a screenshot may be filtered out by aseparately provided text recognition engine and can be set to apredetermined, rarely used colour, in order to increase the ability ofthe method to differentiate between text and image information. This maybe done by aid of usual markup tags. Due to this additional feature theinventive method may differentiate between black coloured areas locatedat different places in the screenshot and text information. Acoincidence by hazard between the selected colour-code with single imagepixels not belonging to the text information may be tolerated in regardof the enormous depth of the colour-range of 2 exp 24 colour-codes.

After having identified the text information it will be extracted fromthe image frame and is ready for transmission in a first transmissionprocess. The resulting gaps in the screenshot are advantageously filledwith pixels having the same colour-code at the adjacent region in theframe, or, if the adjacent regions in the frame have different colours,the gaps are filled advantageously with interpolated pixels. Thus,having a colour of red on the one side of a gap and a colour of yellowat the other side adjacent thereof, the gap will be filled with anorange-coloured pixel. This is done primarily in order to allow anefficient further compressibility of the remaining screen frame as apostponed compression method like JPEG will not recognise an edge, whenthe whole image frame is reduced to a low number-level grey-scale.

The next steps 215 to 265 as described next below are performed for eachsubset of bitmap bits, corresponding to a respective colour, preferablystarting with the most important colour, which is often the blackcolour.

Thus, in a step 215 an X-OR operation is performed in a row-wisedirection. This means in particular that the inventional method beginsto compare the first row with the second row bit-wise. As the frame isalready reduced to a number of 4 different grey colours each pixel iscoded with 2 bits, for example the bits “00” coding black, “01” codingdark grey, “10” coding light grey, and “11” coding white. Only bitshaving the same column position are compared to each other. The resultof the X-OR operation between the first and the second row replaces thefirst row. The result of the X-OR between the second and the third rowreplaces the second row, and so on, until the bottom line of thescreen-frame is reached. The result is that only such locations areassigned a “1”-bit, where the pixel-code is different from one line tothe other in the same column position. This procedure is described inmore detail in the above-mentioned prior art reference. The result ofstep 215 is thus a compressed set of bit-strings which may beuncompressed again to deliver the former original bit-string withoutloss of information.

Further, advantageously, in a step 220 a similar X-OR operation isperformed column-wise, beginning for example with the most left columnin an analogous way, comparing bit-positions of the same row. This is aninventive feature, which can be advantageously applied in bitmaps havinga larger number of rectangle-shaped graphical elements, and inparticular, if such rectangle elements are uni-coloured.

In a next step 230 the compression result from step 215 and 220, whichis referred to in here as an “intermediate result” is coded into abit-string, preferably by repeatedly performing the following steps:

-   -   mapping a byte having one or more ‘1’ bits to a bit value of        ‘1’, and storing said byte in a retrievable manner, preferred,        storing said ‘1’ containing byte behind the compressed bitstring        value,    -   mapping a byte only consisting of ‘0’ bits to ‘0’.

This is illustrated in FIG. 2 by aid of reference signs 240, 245 and250. A more detailed description of this particular process is given inthe above prior art reference.

The result may further be coded by a so-called LZ77-compression in astep 260 and further with the above-mentioned Huffman compression, step265. This compression is somehow surprising since it is done on thealready compressed output of step 250. The compression output from step250 at least for screenshots on a small number of different colours hasthe feature of a low entropy, which makes the compression steps 260 and265 worth being applied. It should be noted that other compressed imageformats like GIF, JPEG, . . . have an entropy of roughly 8 [bits perbyte] and therefore do not allow for an additional compression.

Then the above steps are repeated for the remaining subsets of bitmapbits.

With additional reference now to FIG. 3 the second aspect of the presentinvention is described in more detail, in which a low-bandwidthtransmission of such multi-colored screenshot of a graphical userinterface (GUI-data), which usually arises in web-pages or screenshotsof any desktop application program is pre-compressed by theabove-described compression method and is then transmitted via alow-bandwidth connection to a remote client 10. Basically, the client 10communicates via a dedicated browser proxy 20, which processesweb-contents requested by the client 10 and transmits them to the client10. This situation is described above with reference to FIG. 1.Compressed-bit transmissions are done for each subset separately,beginning with the most important one. Details are as follows:

In a first step 300 the client issues a request to its proxy-server 20.In case, the client application starts from scratch and may be assumedas an Intranet session the client end-device 10 has a kind of“ultra-light” browser implementation which is used for issuing therequest to the proxy-server. In a next step 305, see the right handcolumn of activities in FIG. 3, which are all associated to theproxy-server 20, the proxy-server 20 receives the request. This requestmay be assumed now to contain an URL indicating a web-site the user atclient device 10 wants to see. In a next step 310 proxy-server 20forwards the request to a respective web-server via a high-bandwidthconnection. This might be an Intranet or an Internet connectionconnecting between any two points in the world. In a next step 315 theproxy-server receives the response from said web-server.

A particularly provided logic referred to in here as Proxy Control Logic(PCL) 25 extracts a bitmap in a step 320 from the screen which isoffered to the user.

Then, in order to compress the screen shot the steps described abovewith reference to FIG. 2 above are performed, the result of which isthat the compressed bitmap information is forwarded in a step 335 as a“screen” to the client.

Then, in step 340 the client 10 receives the screen.

With additional reference back to FIG. 1 the client control logic (CCL)15 uncompresses the compressed data where necessary, see step 345 inFIG. 3, and is ready to receive user-input for the case that the userwants to perform any typical user action, as e.g. requesting a furtherURL, clicking on some object comprised of the screenshot, which may befor example a hyperlink, etc. A further option is given to the user torequest more image information from the currently displayed screenshot.This may be relevant, for example when the user stops to navigate andwants to have a detailed look (more shades of grey) at some particularweb-page. Thus, control is fed back to step 300, in order to enable theclient user 10 to issue any further request to his proxy-server 20. Thisway the procedure described above and illustrated by way of FIG. 3 maybe repeated as long as required by client 10 user.

As depicted in the bottom portion of FIG. 3 the inventive transmissionmethod may further be enhanced advantageously by the before-mentionedtransmission taking place in two different processes:

Preferably, the first transmission process 335 transmits the bitscorresponding to a primary subset of such pixels of a screenshot whichare considered to be important for the user (because they may containcontrol information or text information) and is followed by a secondtransmission process 350 transmitting bits corresponding to a secondarysubset of the pixels of said screenshot. This second transmissiontransports pixel information representing less important pixels, forexample other than black color, or text representing pixels. Suchsecondary subset is received, step 355, and filled-in in the displayrepresentation of client 10, step 340, which already contains thefirst-important-subset of information. Advantageously, in onetransmission a single or a plurality of non-primary, ie secondary,third, fourth, etc., subsets may be transmitted as it seems best suitedfor a respective application.

In a particular example the first transmission transports black colorand text information, whereas the second transmission comprises threeother grey colors, representing the rest of information. In thisparticular case a special advantage may be taken profit of, which is“hidden” behind some mathematical context:

The sum resulting from a coding a)+coding b)<coding c), which reads indetail:

-   a) coding of a 1-bit black/white image;-   b) coding of a 2-bit greyscale image comprising 3 “grey-colors:    dark-grey, light-grey and white; is smaller than the-   c) coding of a 2-bit, 4 “grey-colors” comprising image, comprising    the colors black, dark-grey, light-grey and white.

It should be noted that the mapping rules for case a) is preferably:

In the compressed code the color black is used where black was found inthe original image, white is used else.

Case b):

Dark grey is used where dark grey was in the original image, Light greyis used where light grey was in the original image, White is used wherewhite was in the original image, further it has the color “XX” at thelocations, where the original image was black. Advantageously, “XX” is afree-to-select color that may be used freely and thus can also bedefined by the compression algorithm dependent of the actual needs of acurrent applicational case in use.

With further reference now to FIGS. 4-6, a 4-colour grey-scalescreenshot 40 is depicted in FIG. 4. After the row-wise X-OR operationis applied the result is given in FIG. 5. FIG. 6 shows the applicationof the column-wise X-OR operation (on the right part of the picture).

With reference to FIG. 6, additionally on the left part thereof theactual 0/1-coding for each line is illustrated, before the compressionsteps 260 and 265 are performed. The Y-axis represents the rows of arespective screen image, and X-axis represents the storage need. Abreak-even line is depicted separating regions in which the inventivecompression is advantageous (red background), from regions in which itist disadvantageous to be applied (black background). This helps to givea realistic impression to a person skilled in the art, how a screen maybe shaped, when considerable advantages may be expected, when applyingthe inventive concepts. In particular, the border between the whitecolour peaks and black background colour is the break-even point for thecompression to work, that is, the more white is visible, the better thecompression works.

FIG. 7 represents a realistic sample by way of a table representationillustrating the excellent compression results achieved according to thepresent invention. The postive effects of the proposed compressiontechnique are shown compared to the use of the best known compressionformat for the given type of low number of colour pictures, the .giffile format. The comparison is done on 7 representative portal pages ofa freely selected customer portal.

The present invention can be realized in hardware, software, or acombination of hardware and software. A tool according to the presentinvention can be realized in a centralized fashion in one computersystem, or in a distributed fashion where different elements are spreadacross several interconnected computer systems. Any kind of computersystem or other apparatus adapted for carrying out the methods describedherein is suited. A typical combination of hardware and software couldbe a general purpose computer system with a computer program that, whenbeing loaded and executed, controls the computer system such that itcarries out the methods described herein.

The present invention can also be embedded in a computer programproduct, which comprises all the features enabling the implementation ofthe methods described herein, and which—when loaded in a computersystem—is able to carry out these methods.

Computer program means or computer program in the present context meanany expression, in any language, code or notation, of a set ofinstructions intended to cause a system having an information processingcapability to perform a particular function either directly or aftereither or both of the following

-   a) conversion to another language, code or notation;-   b) reproduction in a different material form.

1. A method for processing digital data from a row-column structuredmulti-color bitmap image representation, comprising the steps of: a)reducing said bitmap image representation from an initial number ofcolors to a reduced number of colors to form a reduced bitmap, eachcolor of the reduced number of colors in the reduced bitmapcorresponding to a respective subset of bitmap bits of a set of bitmapbits; b) for at least one subset of said subsets, performing thefollowing steps: b1) performing a row-wise XOR operation on a first andsecond row of each pair of successive rows of said reduced bitmap togenerate a resultant row that replaces said first row, yielding a firstintermediate result after said row-wise XOR operation has been performedon all pairs of rows of the reduced bitmap, b2) coding said firstintermediate result into a bit string yielding a second intermediatecompression result by repeatedly performing the following mapping steps:b2a) mapping a byte having one or more ‘1’ bits to a bit value of ‘1’,and b2b) mapping a byte consisting of ‘0’ bits to a bit value of ‘0’,b3) applying an additional compression to said second intermediatecompression result to yield an additional compression result.
 2. Themethod of claim 1, said method further comprising the step of performinga column-wise XOR operation on said reduced bitmap after step b1). 3.The method of claim 1, wherein said additional compression comprises aHuffmann compression.
 4. The method of claim 1, wherein said additionalcompression comprises a LZ77 compression.
 5. The method of claim 1,wherein the subsets comprise 256, 16 or 4 scales of color or grey, andwherein steps b1) to b3) are performed for two or more of said subsets.6. The method of claim 1, wherein the method comprises deducing theimage representation from a screenshot associated with a computerprogram application.
 7. The method of claim 1, wherein the at least onesubset comprises a plurality of subsets, and wherein after step b), themethod further comprises the steps of: c) determining a primary subsetand at least one secondary subset from the plurality of subsets; d)transmitting bits corresponding to said primary subset in a firsttransmission process from a proxy server to a client; and e)transmitting bits corresponding to said at least one secondary subset ina second transmission process from the proxy server to the clientsubsequent to said first transmission process.
 8. The method of claim 7,wherein the set of bitmap bits consists of 1 bit, wherein the primarysubset represents black, and wherein the at least one secondary subsetconsists of a single subset representing white.
 9. The method of claim7, wherein text information comprised by said image representation ismapped to the primary subset.
 10. The method of claim 7, wherein the setof bitmap bits consists of 2 bits, wherein the primary subset representsblack, and wherein the at least one secondary subset consists of a threesubsets respectively representing dark-grey, light-grey, and white. 11.A computer program product, comprising a computer readable medium havinga computer program embodied therein, said computer program adapted toimplement a method for processing digital data from a row-columnstructured multi-color bitmap image representation, said methodcomprising the steps of: a) reducing said bitmap image representationfrom an initial number of colors to a reduced number of colors to form areduced bitmap, each color of the reduced number of colors in thereduced bitmap corresponding to a respective subset of bitmap bits of aset of bitmap bits; b) for at least one subset of said subsets,performing the following steps: b1) performing a row-wise XOR operationon a first and second row of each pair of successive rows of saidreduced bitmap to generate a resultant row that replaces said first row,yielding a first intermediate result after said row-wise XOR operationhas been performed on all pairs of rows of the reduced bitmap, b2)coding said first intermediate result into a bit string yielding asecond intermediate compression result by repeatedly performing thefollowing mapping steps: b2a) mapping a byte having one or more ‘1’ bitsto a bit value of ‘1’, and b2b) mapping a byte consisting of ‘0’ bits toa bit value of ‘0’, b3) applying an additional compression to saidsecond intermediate compression result to yield an additionalcompression result.
 12. The computer program product of claim 11, saidmethod further comprising the step of performing a column-wise XORoperation on said reduced bitmap after step b1).
 13. The computerprogram product of claim 11, wherein said additional compressioncomprises a Huffmann compression.
 14. The computer program product ofclaim 11, wherein said additional compression comprises a LZ77compression.
 15. The computer program product of claim 11, wherein thesubsets comprise 256, 16 or 4 scales of color or grey, and wherein stepsb1) to b3) are performed for two or more of said subsets.
 16. Thecomputer program product of claim 11, wherein the method comprisesdeducing the image representation from a screenshot associated with acomputer program application.
 17. The computer program product of claim11, wherein the at least one subset comprises a plurality of subsets,and wherein after step b), the method further comprises the steps of: c)determining a primary subset and at least one secondary subset from theplurality of subsets; d) transmitting bits corresponding to said primarysubset in a first transmission process from a proxy server to a client;and e) transmitting bits corresponding to said at least one secondarysubset in a second transmission process from the proxy server to theclient subsequent to said first transmission process.
 18. The computerprogram product of claim 17, wherein the set of bitmap bits consists of1 bit, wherein the primary subset represents black, and wherein the atleast one secondary subset consists of a single subset representingwhite.
 19. The computer program product of claim 17, wherein textinformation comprised by said image representation is mapped to theprimary subset.
 20. The computer program product of claim 17, whereinthe set of bitmap bits consists of 2 bits, wherein the primary subsetrepresents black, and wherein the at least one secondary subset consistsof a three subsets respectively representing dark-grey, light-grey, andwhite.